/**
 * 
 */
package cn.biplam.front.html;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.base.Const;
import cn.biplam.front.html.base.HtmlWindow;
import cn.biplam.front.html.base.Const.Marquee_Behavior;
import cn.biplam.front.html.base.Const.Marquee_Direction;

/**
 * Html 滚动条
 * @author 	WangSong 2009-4-9 下午08:02:59
 * @version 1.0
 */
public class HtmlMarquee extends HtmlWindow {
	
	/**
	 * 构造方法	无参构造
	 */
	public HtmlMarquee(){
	}
	
	/**
	 * 构造方法	传入对象的页面ID初始化
	 * @param ID	页面ID
	 */
	public HtmlMarquee(String ID){
		super(ID);
	}
	
	/**
	 * 构造方法 传入对象的页面ID和CSSID初始化
	 * @param ID	页面ID
	 * @param cssID	样式表ID
	 */
	public HtmlMarquee(String ID,String cssID){
		super(ID,cssID);
	}

	/**
	 * 返回实现类自定义的位于对象起始和结束标签内的 HTML
	 * @param sb
	 * @throws ErrorMessage
	 */
	protected void _getContent(StringBuilder sb) throws ErrorMessage {
	}
	
	/**
	 * 复制对象
	 * @return 创建的新对象实例
	 * @throws ErrorMessage
	 */
	public HtmlWindow copy() throws ErrorMessage {
		HtmlMarquee marquee=new HtmlMarquee(this.getID(),this.getCssID());
		super._copy(marquee);
		return marquee;
	}

	/**
	 * 获取对象及其内容的 HTML 形式(不包含客户端绑定脚本)
	 * @param sb
	 * @throws ErrorMessage
	 */
	public void getHtml(StringBuilder sb) throws ErrorMessage {
		sb.append("<MARQUEE ");
		super.writeTagSetting(sb);
		sb.append(">\n");
		this.getContent(sb);
		sb.append("</MARQUEE>\n");
	}
	
	/**
	 * 放入文本(追加)
	 * @param sText
	 * @throws ErrorMessage
	 */
	public void put(String sText) throws ErrorMessage{
		HtmlText text = new HtmlText();
		text.put(sText);
		this.put(text);
	}
	
	/**
	 * 设置滚动方式
	 * @param behavior {@link Const}.Marquee_Behavior
	 * @throws ErrorMessage
	 */
	public void setBehavior(Marquee_Behavior behavior) throws ErrorMessage{
		super.setProperty("BEHAVIOR", behavior.toString());
	}

	/**
	 * 设置滚动方向
	 * @param dir	{@link Const}.Marquee_Direction
	 * @throws ErrorMessage
	 */
	public void setDirection(Marquee_Direction dir) throws ErrorMessage{
		super.setProperty("DIRECTION", dir.toString());
	}
	
	/**
	 * 设置循环次数
	 * @param value
	 * @throws ErrorMessage
	 */
	public void setLoop(String value) throws ErrorMessage{
		super.setProperty("LOOP", value);
	}

	/**
	 * 设置步长像素
	 * @param value
	 * @throws ErrorMessage
	 */
	public void setScrollAmount(String value) throws ErrorMessage{
		super.setProperty("SCROLLAMOUNT", value);
	}

	/**
	 * 设置步长延迟秒数
	 * @param value
	 * @throws ErrorMessage
	 */
	public void setScrollDelay(String value) throws ErrorMessage{
		super.setProperty("SCROLLDELAY", value);
	}

}
